<?php
class Ucode { 	
	  private $uid;
	  private $tid;
	  public function __construct($uid,$tid) {
	      $this->uid = $uid;
	      $this->tid = $tid;	
	   }	
	    //密码字典 
	    private $dic = array( 
	        0=>'0',    1=>'1', 2=>'2', 3=>'3', 4=>'4', 5=>'5', 6=>'6', 7=>'7', 8=>'8',     
	        9=>'9', 10=>'A',  11=>'B', 12=>'C', 13=>'D', 14=>'E', 15=>'F',  16=>'G',  17=>'H',     
	        18=>'I',19=>'J',  20=>'K', 21=>'L',  22=>'M',  23=>'N', 24=>'O', 25=>'P', 26=>'Q',     
	    27=>'R',28=>'S',  29=>'T',  30=>'U', 31=>'V',  32=>'W',  33=>'X', 34=>'Y', 35=>'Z' 
	    ); 
	    public function encodeID($int, $format=8) { 
	        $dics = $this->dic; 
	        $dnum = 36; //进制数 
	        $arr = array (); 
	        $loop = true; 
	        while ($loop) { 
	            $arr[] = $dics[$this->my_bcmod($int, $dnum)]; 
	            $int = $this->bcdiv_cust($int,$dnum, 0); 
	            if ($int == '0') { 
	                $loop = false; 
	            } 
	        } 
	        if (count($arr) < $format) 
	            $arr = array_pad($arr, $format, $dics[0]); 
	 
	        return implode('', array_reverse($arr)); 
	    } 
		public function my_bcmod($x,$y) 
		{ 
		    $take = 5;     
		    $mod = ''; 

		    do 
		    { 
		        $a = (int)$mod.substr( $x, 0, $take ); 
		        $x = substr( $x, $take ); 
		        $mod = $a % $y;    
		    } 
		    while ( strlen($x) ); 
		    return (int)$mod; 
		} 
		public function bcdiv_cust( $first, $second, $scale = 0 )
		{
		    $res = $first / $second;
		    return round( $res, $scale );
		}	
		public function code_on()
		{
			$card_no = $this->encodeID($this->uid,5); 
			$card_pre = $this->tid; 
			$card_vc = substr(md5($card_pre.$card_no),0,2); 
			$card_vc = strtoupper($card_vc); 
			$code_on = $card_pre.$card_no.$card_vc; 
			return $code_on;
		}

	}

?>